package com.scfinance.SPD.encrypt.util;

import java.math.BigInteger;

public class RSAEncrypt {


	private static final int RAS_ENCRYPT_LEN = 1024;

	public RSAEncrypt()
	{
	}

	public static final String encryptKey(String s, String s1, String s2)
	{
		byte abyte0[] = s.getBytes();
		BigInteger biginteger = null;
		BigInteger biginteger1 = new BigInteger(abyte0);
		if (s.length() <= 1024)
			biginteger = biginteger1.modPow(new BigInteger(s1), new BigInteger(s2));
		return (new StringBuilder()).append(biginteger).toString();
	}

	public static final String decryptKey(String s, String s1, String s2)
	{
		BigInteger biginteger = (new BigInteger(s)).modPow(new BigInteger(s1), new BigInteger(s2));
		return new String(biginteger.toByteArray());
	}

	public static void main(String args[])
	{
	
		String s4 = "155333836407721742437013964781240813547648568277369856731702424544611477233723824062420264408239311308072589928283658882295219953371806319333882040818949674481224316055960548594185861343375871668788225708078406850675377231168363720279630308760697461486942310771070811887375953146186569824772570916425025719011";
		//私钥
		String s5 = "6922124323380142352858781819900962724975301518505080511753522789374989986628296129889384077902336989115869396463758101479168656787734460452540430792270689452115726586060974350225600302433556364238917228002855818585096156674486066096177316214873367757117636350379232379932337812016370654635398836592103447536119008338685794060853874278122389321594048244632662647854584106566764440275119811726178483433731059379137391184488286938145498098136151022287572490285509396073471434801358944300785605851032308710553237957123680702988677330839529669347014144475268304853827163785376913223689497455014914867507530761192761002091";
		//�?
		String s6 = "9371004933518287139852915334157124242508586369659033482291061022751607180274698607338105674795198009594312719547803916745800103033600540244841444220316063424146819553125557227295720450973923158286595378082433035855916404812152374929367875939362651543167871547687901348310174726328815306918202636700513288322241449912655727988526478959448560973166201371573323173412595412003697377360365327809645019841319350791294785701627763941268632091598630631963020534549730002970310332172601156468634474105327837444330255152576140902901907112632706501713973933755404350854905959579070605702440397898267438743411508661320100260851";
	
		String s9 = encryptKey("hello", s4, s6);
		System.out.println((new StringBuilder("密文:")).append(s9).toString());
		String s10 = decryptKey(s9, s5, s6);
		System.out.println((new StringBuilder("解密:")).append(s10).toString());

	}

}
